package cn.edu.bzu.aaa.service;

import cn.edu.bzu.aaa.dao.UserDAO;
import cn.edu.bzu.aaa.model.User;

import java.util.Date;
import java.util.List;

public class UserService {
    private UserDAO userDAO;

    public UserService() {
        this.userDAO = new UserDAO();
    }

    /**
     * 获取所有用户信息。
     *
     * @return 包含所有用户信息的列表。
     */
    public List<User> getAllUsers() {
        return userDAO.getAll();
    }

    /**
     * 验证用户名和密码。
     *
     * @param username 用户名。
     * @param password 密码。
     * @return 验证结果：0 - 用户不存在，1 - 密码错误，2 - 用户名和密码正确。
     */
    public int validateUser(String username, String password) {
        User user = userDAO.getByUsername(username);
        if (user == null) {
            return 0; // 用户不存在
        } else if (!user.getPassword().equals(password)) {
            return 1; // 密码错误
        } else {
            return 2; // 用户名和密码正确
        }
    }

    public boolean isUserLocked(String username) {
        User user = userDAO.getByUsername(username);
        if (user != null) {
            return user.isLocked();
        }
        return false; // 如果用户不存在，默认认为未锁定
    }
    public boolean IsRegistrationComplete(String username) {
        User user = userDAO.getByUsername(username);
        if (user != null) {
            return user.isRegistrationComplete();
        }
        return false; // 如果用户不存在，默认认为未锁定
    }
    public void lockUserByUsername(String username) {
        User user = userDAO.getByUsername(username);
        if (user != null) {
            user.setLocked(true);
            userDAO.update(user);
        }
    }
    public void updateLastLoginDate(String username, Date lastLoginDate) {
        User user = userDAO.getByUsername(username);
        if (user != null) {
            user.setLastLoginDate(new java.sql.Date(new Date().getTime())); // 正确的代码
            userDAO.update(user);
        }
    }
    public void add(User user) {
        userDAO.add(user);
    }
    /**
     * 根据用户名获取用户信息。
     *
     * @param username 用户名。
     * @return 用户信息。
     */
    public User getUserByUsername(String username) {
        return userDAO.getByUsername(username);
    }
}